﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using ReportesDAL;
using ReportesDAL.DtsVendedoresTableAdapters;
using BE.SearchCriteria;
using BLL;
using BE;

namespace VentaPorCatalogos.Reports.Vendedores
{
    public partial class rptVendedores : VentaPorCatalogos.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindearReporte(false);
            }
        }

        protected void btnMostrar_Click(object sender, EventArgs e)
        {
            try
            {
                BindearReporte(true);
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        protected void btnSelVendedor_Click(object sender, ImageClickEventArgs e)
        {
            int wCount = 0;

            if (txtVendedor.Text.Trim().Length > 0)
            {
                if (string.IsNullOrEmpty(hidIdVendedor.Value))
                    return;

                VendedorSC wFiltroSC = new VendedorSC();
                wFiltroSC.IdVendedor = Int32.Parse(hidIdVendedor.Value);
                List<VendedorBE> wListResultado = VendedorBLL.SeleccionarTodos(wFiltroSC, 0, null, ref wCount);
                if (wListResultado != null && wListResultado.Count > 0)
                {
                    if (wListResultado.Count == 1)
                    {
                        hidIdVendedor.Value = wListResultado[0].IdVendedor.ToString();
                        txtVendedor.Text = wListResultado[0].ApellidoNombre;
                        //MostrarZonas();
                    }
                    else
                        EjecutarScript(string.Format("SeleccionarVendedor(\"{0}\");", txtVendedor.Text));
                }
                else
                {
                    txtVendedor.Text = string.Empty;
                    EjecutarScript("alert(\"Sin resultados para el filtro especificado.\");");
                }
            }
            else
            {
                EjecutarScript(string.Format("SeleccionarVendedor(\"{0}\");", txtVendedor.Text));
            }

        }

        protected void btnSelZona_Click(object sender, ImageClickEventArgs e)
        {
            int wCount = 0;

            if (txtZona.Text.Trim().Length > 0)
            {
                ZonaSC wFiltroSC = new ZonaSC();
                wFiltroSC.Descripcion = txtZona.Text;
                List<ZonasBE> wListResultado = ZonaBLL.SeleccionarTodos(wFiltroSC, 0, null, ref wCount);
                if (wListResultado != null && wListResultado.Count > 0)
                {
                    if (wListResultado.Count == 1)
                    {
                        hidIdZona.Value = wListResultado[0].IdZona.ToString();
                        txtZona.Text = wListResultado[0].Descripcion;
                    }
                    else
                        EjecutarScript(string.Format("SeleccionarZona(\"{0}\");", txtZona.Text));
                }
                else
                {
                    txtZona.Text = string.Empty;
                    EjecutarScript("alert(\"Sin resultados para el filtro especificado.\");");
                }
            }
            else
            {
                EjecutarScript(string.Format("SeleccionarZona(\"{0}\");", txtZona.Text));
            }
        }


        private void BindearReporte(bool pConectar)
        {
            try
            {
                DtsVendedores.Vendedores_GetReportDataTable dsVendedores = new DtsVendedores.Vendedores_GetReportDataTable();

                if (pConectar)
                {
                    Int32? wIdVendedor = null;
                    Int32? wIdZona = null;
                    if (!string.IsNullOrEmpty(hidIdVendedor.Value))
                        wIdVendedor = Convert.ToInt32(hidIdVendedor.Value);
                    if (!string.IsNullOrEmpty(hidIdZona.Value))
                        wIdZona = Convert.ToInt32(hidIdZona.Value);

                    Vendedores_GetReportTableAdapter TbaVendedores = new Vendedores_GetReportTableAdapter();
                    TbaVendedores.Fill(dsVendedores, wIdVendedor, null, null, null, null, wIdZona, null);
                }

                ReportDataSource rdsVendedores = new ReportDataSource();
                rdsVendedores.Value = dsVendedores;
                rdsVendedores.Name = "dsVendedores";

                rptViewer.LocalReport.DataSources.Clear();
                rptViewer.LocalReport.ReportPath = @"Reports\Vendedores\rptVendedores.rdlc";
                rptViewer.LocalReport.DataSources.Add(rdsVendedores);
                rptViewer.LocalReport.Refresh();
            }
            catch (Exception)
            {

                throw;
            }
        }

        protected void btnLimpiarFiltros_Click(object sender, EventArgs e)
        {
            txtVendedor.Text = string.Empty;
            hidIdVendedor.Value = string.Empty;
            txtZona.Text = string.Empty;
            hidIdZona.Value = string.Empty;
        }

    }
}